/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package fisica;

import hibernate.Sesion;
import hibernate.objeto.Evolucion;
import java.util.Vector;
import org.hibernate.Query;

/**
 *
 * @author Administrador
 */
public class EvolucionFisica extends CapaFisica {

    /**
     * Retorna el objeto Vector<Evolucion> según el id del paciente al que esta
     * asociada según la práctica ambulatorio.
     *
     * @param idPaciente El id del paciente
     * @return El vector de Vector<Evolucion> consultado
     */
    public static Vector<Evolucion>
            getVectorEvolucionAmbulatorioPorIdPaciente(int idPaciente) {
         Query q = Sesion.sesion.createQuery(
                 "from Evolucion e " +
                 "where e.enfermedadYDiagnosticoAmbulatorio.paciente.idPaciente = " +
                 idPaciente
                 );

         return getVectorObjetos(q);
    }

    /**
     * Retorna el objeto Vector<Evolucion> según el id del paciente al que esta
     * asociada según la práctica internación.
     *
     * @param idPaciente El id del paciente
     * @return El vector de Vector<Evolucion> consultado
     */
    public static Vector<Evolucion>
            getVectorEvolucionInternacionPorIdPaciente(int idPaciente) {
         Query q = Sesion.sesion.createQuery(
                 "from Evolucion e " +
                 "where e.diagnosticoYTriageInternacion.paciente.idPaciente = " +
                 idPaciente
                 );

         return getVectorObjetos(q);
    }

    /**
     * Retorna el objeto Evolucion según el id.
     *
     * @param idEvolucion El id de la evolución
     * 
     * @return El objeto Evolucion consultado, null si
     * no existe
     */
    public static Evolucion getEvolucionPorId(int idEvolucion) {
        Query q = Sesion.sesion.createQuery(
                "from Evolucion " +
                "where idEvolucion = " +
                idEvolucion
                );

        return (Evolucion) getObjeto(q);
    }

    /**
     * Retorna el vector de objetos Evolucion según la enfermedad.
     *
     * @param enfermedadYDiagnosticoAmbulatorio La enfermedad
     * @return El vector de objetos Evolucion, null si no existe
     */
    public static Vector<Evolucion>
            getVectorEvolucionPorIdEnfermedadYDiagnosticoAmbulatorio(
            int idEnfermedadYDiagnosticoAmbulatorio) {
        Query q = Sesion.sesion.createQuery(
                "from Evolucion as e " +
                "where e.enfermedadYDiagnosticoAmbulatorio.idEnfermedadYDiagnosticoAmbulatorio = " +
                idEnfermedadYDiagnosticoAmbulatorio
                );

        return getVectorObjetos(q);
    }

    /**
     * Retorna el vector de objetos Evolucion según el diagnóstico.
     *
     * @param enfermedadYDiagnosticoAmbulatorio La enfermedad
     * @return El vector de objetos Evolucion, null si no existe
     */
    public static Vector<Evolucion>
            getVectorEvolucionPorIdDiagnosticoYTriageInternacion(
            int idDiagnosticoYTriageInternacion) {
        Query q = Sesion.sesion.createQuery(
                "from Evolucion as e " +
                "where e.diagnosticoYTriageInternacion.idDiagnosticoYTriageInternacion = " +
                idDiagnosticoYTriageInternacion
                );

        return getVectorObjetos(q);
    }

}